image.png

ActiveMQ简介:

MQ(Message Queue)

应用场景: a.异步处理(用户注册) b.应用解耦(订单扣库存) c.流量削锋(秒杀业务)

JMS消息模型 Java Message Service

A.P2P (点对点模式)

消息队列Queue 发送者Sender 接受者Receiver

  • 1.每个消息只有一个消费者(消息一旦被消费,消息就不在消息队列中)
  • 2.发送者和接受者之间在时间上没有依赖性,也就是说当发送者发送了消息后,不管接受者 有没有运行,他不会影响到消息发送到队列
  • 3.接受者在成功接受到消息之后需要向队列应答成功 ** 如果希望发送的每个消息都会成功处理,要使用P2P模式

B.Publish / Subscribe (发布订阅模式)

主题(Topic) 发布者(Publisher) 订阅者(Subscriber)

  • 1.每个主题可以有多个订阅者
  • 2.发布者和订阅者有时间上的依赖性。针对某个主题的订阅者,他必须创建一个订阅后,才能 收到消费者发布者的消息
  • 3.为了消费消息,订阅者必须保持运行的状态 消息持久化订阅

ActiveMQ Topic消息失败重发

1.JMS消息确认机制 session接口中定义的几个常量

  • AUTO_ACKNOWLEDGE=1 自动确认
  • CLIENT_ACKNOWLEDGE=2 客户端手动确认
  • DUPS_OK_ACKNOWLEDGE=3 自动批量确认
  • SESSION_TRANSACTED =0 事务提交并确认

1.下载

下载地址: http://activemq.apache.org/components/classic/download/ image.png

2.上传到自己的服务器特定目录并解压

[root@iZbp18nyz28va2zwadft2qZ opt]# tar xzf apache-activemq-5.15.12-bin.tar.gz 

切换到bin目录

[root@iZbp18nyz28va2zwadft2qZ bin]# ll
total 156
-rwxr-xr-x 1 root root 21535 Mar 13 19:15 activemq
-rwxr-xr-x 1 root root  6189 Mar 13 19:15 activemq-diag
-rw-r--r-- 1 root root 16405 Mar 13 18:56 activemq.jar
-rw-r--r-- 1 root root  5607 Mar 13 19:15 env
drwxr-xr-x 2 root root  4096 Mar 31 22:55 linux-x86-32
drwxr-xr-x 2 root root  4096 Mar 31 22:55 linux-x86-64
drwxr-xr-x 2 root root  4096 Mar 31 22:55 macosx
-rw-r--r-- 1 root root 83820 Mar 13 18:15 wrapper.jar

3.启动ActiveMQ

首先你把防火墙端口打开8161(web管理端端口) 61616(tcp服务端口)否则连不上哦

[root@iZbp18nyz28va2zwadft2qZ bin]# ./activemq start 
INFO: Loading '/opt/apache-activemq-5.15.12//bin/env'
INFO: Using java '/usr/local/java/jdk1.8.0_231/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/opt/apache-activemq-5.15.12//data/activemq.pid' (pid '953')

日常操作

./activemq start   启动
./activemq stop    停止
./activemq status  查看状态

4.登陆web管理页面

如 服务器IP 为 110.110.11.11 那么登录地址为 http://110.110.11.11:8161/admin 默认帐号密码为admin

image.png